var ds;
var grid;
var insertForm;
var updateForm;
var form;
var win;
var cache_date=new Date();
var cache_spec;
Ext.onReady(function() {
			initData();

		});
var modify = new Ext.data.Record.create([{
			name : 'amount'
		}, {
			name : 'dateFrom'
		}, {
			name : 'dateTo'
		}, {
			name : 'sortType'
		}]);
var sortRec = new Ext.data.Record.create([{
			name : 'sortType'
		}, {
			name : 'zh_sort'
		}]);
var sortStore;
function initSortStore() {
	sortStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../orderJiaGongIndex.do?action=sort'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'sort',
							mapping : 'specName'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});
	sortStore.load({params : {
					
					limit : 10
				}});
	return sortStore;
};
var dateFrom, dateTo, sortType;
function initData() {
	ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderInfo.do?action=list'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'ssign'
								}, {
									name : 'spec'
								}, {
									name : 'plate'
								}, {
									name : 'ordernum'
								}, {
									name : 'ordercost'
								}, {
									name : 'month1'
								}, {
									name : 'year1'
								}])
			});
	var arr = window.location.href.split('&');

	ds.load({
				params : {
					dateFrom : dateFrom,
					dateTo : dateTo,
					sortType : sortType,
					isNew : '2',
					start : 0,
					limit : 10
				}
			});
	initGrid();
}
function getUpdateForm() {
	sortStore = initSortStore();
	if (!updateForm) {
		updateForm = new Ext.FormPanel({
					labelWidth : 75,
					// url : '../orderInfo.do?action=update',
					frame : true,
					bodyStyle : 'padding:5px 5px 0',
					width : 340,
					defaults : {
						width : 230
					},
					defaultType : 'textfield',
					items : [{
								fieldLabel : '结算金额',// 一开始漏了个主id,导致update不成功
								name : 'amount',
								allowBlank : false
							}, {
								xtype : 'datefield',
								format : 'Y-m-d',
								fieldLabel : '发货起始日期',
								name : 'dateFrom',
								value:cache_date,
								listeners:{
								"change":function(_this,_new,_old)
								{
									updateForm.find("name","dateTo")[0].setValue(_new);
								}
								},
								anchor : '90%'
							}, {
								xtype : 'datefield',
								format : 'Y-m-d',
								fieldLabel : '发货截止日期',
								name : 'dateTo',
				value:cache_date,
								anchor : '90%'
							}, {
								fieldLabel : '选定规格种类',
								name : 'sortType',
								xtype : 'combo',
								allowBlank : false,
								store : sortStore,// [['yuanzhu',"圆柱"],['fangkuai',"方块"],['others',"其他"]]
								displayField : 'sort',
								typeAhead : true,
								mode : 'local',
								
								listeners:{
								'select':function(_this,_record)
								{
									var v=this.getValue();
									cache_spec=v;
								}
								},
								forceSelection : true,
								triggerAction : 'all',
								emptyText : 'Select a state...',
								selectOnFocus : true,
								anchor : '90%'
							}]
				});
	}
	return updateForm;
}// 构造了一个更新的界面。

function initGrid() {
	Ext.QuickTips.init();

	var xg = Ext.grid;
	/**/
	if (!form)
		form = getUpdateForm();
	/* win */
	if (!win) {
		win = new Ext.Window({
					layout : 'column',
					width : 355,
					autoHeight : true, // 4601782
					closeAction : 'hide',
					plain : true,
					items : form,
					modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
					buttons : [{
								text : '保存',
								handler : function() {
									if (form.getForm().isValid()) {
										// Ext.msg.alert("starting to submit");
										win.hide();
										grid.destroy();
										dateFrom = form.getForm().getValues().dateFrom;
										dateTo = form.getForm().getValues().dateTo;
										sortType = form.getForm().getValues().sortType;
										initData();

									} else {
										Ext.MessageBox.alert('提示', '请正确填写数据！');
									}
								}
							}, {
								text : '清空',
								handler : function() {
									form.getForm().reset();
								}
							}, {
								text : '关闭',
								handler : function() {
									form.getForm().reset();
									win.hide();
								}
							}]
				});
	}
	// ////////////////////////////////////////////////////////////////////////////////
	// Grid
	// //////////////////////////////////////////////////////////////////////////////////////
	var sm = new xg.CheckboxSelectionModel();
	grid = new xg.GridPanel({
				id : 'button-grid',
				autoScoll : true,
				ds : ds,
				cm : new xg.ColumnModel([sm, {
							header : "牌号",
							// width : 40,
							sortable : true,
							dataIndex : 'ssign'
						}, {
							header : "规格",
							// width : 50,
							sortable : true,
							dataIndex : 'spec'
						}, {
							header : "镀层",
							// width : 50,
							sortable : true,
							dataIndex : 'plate'
						}, {
							header : "发货数量",
							// width : 50,
							sortable : true,
							dataIndex : 'ordernum'
						}, {
							header : "总价",
							// width : 50,
							sortable : true,
							dataIndex : 'ordercost'
						}]),
				sm : sm,
				stripeRows : true,

				viewConfig : {
					forceFit : true
				},

				// inline toolbars
				tbar : [{
							text : '重新查询',
							tooltip : '重新选择从ERP导入发货信息',
							iconCls : 'add',
							onClick : function() {
								form.hide();
								form = getUpdateForm();
								form.show();
								var items = new Ext.util.MixedCollection();
								items.add("form", form);
								win.width = 355, win.items = items;
								// win.title = "报价单信息";
								win.show(this);
								form.getForm().reset();
								orderInfo.getAmount(function(_ret) {
											if (_ret == null) {
												// Ext.Msg.alert("错误","没有该客户编号，请重新输入");
												return;
											}
											form.getForm().setValues({
														amount : _ret
													});
										});
							}
						}, '-', {
							text : '进行结算',
							tooltip : '对选定的发货信息进行结算',
							iconCls : 'option',
							onClick : function() {
								if (sm.getCount() == 1) {
									if (!dateFrom) {

										dateF = new Date();
										dateFrom = "null";
										//alert(dateFrom);
									}
									if (!dateTo) {
										dateT = new Date();
										dateTo = "null";//dateT.format('Y-m-d');
									}
									window.location.href = "orderInput.jsp?spec="
											+ sm.getSelections()[0].data["spec"]
											+ "&ssign="
											+ sm.getSelections()[0].data["ssign"]
											+ "&plate="
											+ sm.getSelections()[0].data["plate"]
											+ "&dateFrom="
											+ dateFrom
											+ "&dateTo=" + dateTo;
								} else {
									Ext.MessageBox.alert('提示', '请选择一条记录！');
								}
							}

						}],

				bbar : new Ext.PagingToolbar({
							pageSize : 10,
							store : ds,
							displayInfo : true,
							displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
							emptyMsg : "没有记录"
						}),
				width : 700,
				autoHeight : true,
				// frame:true,
				title : '发货信息列表',
				iconCls : 'icon-grid',
				renderTo : 'main'
			});
};
